// 作用：做网络请求使用的（对axios进行封装）

// 1. 导入axios
import axios from "axios";

// 2. 处理axios
// 新的知识点：axios拦截器
// a. 在axios中，拦截器有两种：请求拦截器和响应拦截器
// b. 拦截器的作用；简单来讲就是拦路抢劫（对请求/响应进行处理）
// c. 不管是使用哪个拦截器都必须在回调函数中最后写上return
// 请求拦截器
// axios.interceptors.request.use((config) => {
    // config参数：请求发送时需要的信息对象
    // 常用场景：为部分/所有的请求添加特定的请求头信息（例如有些接口需要做token鉴权的）
//     return config;
// });

// 响应拦截器
axios.interceptors.response.use((ret) => {
    // ret参数：请求返回的响应的对象
    // 常用场景：将后端返回的数据做简化处理
    // ret中有data/config/status/request等等，里面一般只有data能用上，所以每次都得ret.data.xxx
    // 例如：
    // if(ret.data){
    //     return ret.data;
    // }else{
    //     return ret;
    // }
    // 简化：
    // return ret.data ? ret.data : ret;
    // 再简化（短路）：
    return ret.data || ret;

    // return ret;
});

// 3. 导出axios
export default axios;

// 再优化思路：能不能省去以后每次的import？    this.$http.get()
// import axios from "@/api/http"
// axios.get(xxxx)
// 